Apex-এ Try-Catch-Finally ব্লক এবং Throw Statement Exception Handling এর একটি গুরুত্বপূর্ণ অংশ, যা ত্রুটি সনাক্ত ও সঠিকভাবে হ্যান্ডল করতে সহায়ক। Try-Catch-Finally ব্লক কোনো কোডে ত্রুটি ঘটলে তা হ্যান্ডল করে এবং Throw Statement ব্যবহার করে নির্দিষ্ট ত্রুটি তৈরি বা "থ্রো" করতে পারে।
Try-Catch-Finally ব্লক
Try-Catch-Finally ব্লক ত্রুটি হ্যান্ডল করার একটি স্ট্রাকচার, যা তিনটি অংশে বিভক্ত:
Try ব্লক: try ব্লকের মধ্যে এমন কোড লেখা হয় যেখানে ত্রুটি ঘটতে পারে। Exception ঘটলে এটি catch ব্লকে চলে যায়।
Catch ব্লক: catch ব্লক Exception এর ধরন অনুযায়ী ত্রুটি সনাক্ত করে এবং তা হ্যান্ডল করে। এখানে নির্দিষ্ট Exception (যেমন DmlException, NullPointerException) উল্লেখ করা যায়।
Finally ব্লক: finally ব্লক সবসময় চালিত হয়, Exception ঘটুক বা না ঘটুক। এটি সাধারণত ক্লিনআপ কাজের জন্য ব্যবহৃত হয়।
Try-Catch-Finally ব্লকের উদাহরণ
try {
// Potentially error-prone code
Integer result = 10 / 0; // Division by zero, causes ArithmeticException
System.debug('Result: ' + result);
} catch (ArithmeticException e) {
System.debug('ArithmeticException: ' + e.getMessage());
} catch (Exception e) {
System.debug('General Exception: ' + e.getMessage());
} finally {
System.debug('Operation completed.');
}
- Try ব্লক: যেখানে Division by Zero ত্রুটি ঘটবে।
- Catch ব্লক:
ArithmeticException-এর ক্ষেত্রে প্রথমcatchব্লক কাজ করবে। অন্য Exception হলে দ্বিতীয়catchব্লক কাজ করবে। - Finally ব্লক: সবসময় চালিত হবে এবং
"Operation completed."মেসেজ প্রিন্ট করবে।
Throw Statement
Throw Statement এর মাধ্যমে নির্দিষ্ট Exception তৈরি করা হয় এবং ইচ্ছাকৃতভাবে Exception "থ্রো" করা হয়। এটি সাধারণত কাস্টম Exception তৈরি বা নির্দিষ্ট শর্ত পূরণ না হলে ত্রুটি সনাক্ত করতে ব্যবহৃত হয়। Throw Statement ব্যবহার করে Exception তৈরি করার জন্য throw কিওয়ার্ড ব্যবহার করা হয়।
Throw Statement উদাহরণ
public void validateAge(Integer age) {
if (age < 18) {
throw new IllegalArgumentException('Age must be 18 or older.');
}
System.debug('Age is valid.');
}
- এখানে
age১৮ এর কম হলেIllegalArgumentExceptionException থ্রো করা হয়েছে এবং কাস্টম বার্তা প্রদান করা হয়েছে।
Throw Statement এর সাথে Try-Catch-Finally ব্লক
Throw Statement এর মাধ্যমে Exception তৈরি করার পর Try-Catch-Finally ব্লকে এটি হ্যান্ডল করা যেতে পারে।
try {
validateAge(15); // Throws IllegalArgumentException
} catch (IllegalArgumentException e) {
System.debug('Caught Exception: ' + e.getMessage());
} finally {
System.debug('Validation completed.');
}
- Throw Statement:
validateAge(15)কল করলেIllegalArgumentExceptionথ্রো হয়। - Catch ব্লক:
IllegalArgumentExceptionException ধরে এবং বার্তা প্রদর্শন করে। - Finally ব্লক: সবসময় চালিত হয় এবং
"Validation completed."প্রিন্ট করে।
Custom Exception তৈরিতে Throw Statement
Apex এ কাস্টম Exception তৈরি করে নির্দিষ্ট পরিস্থিতিতে Exception থ্রো করা যায়। Custom Exception তৈরির জন্য নতুন একটি ক্লাস তৈরি করে extends Exception ব্যবহার করা হয় এবং এরপর throw ব্যবহার করে Exception তৈরি করা যায়।
Custom Exception উদাহরণ
// Custom Exception ক্লাস
public class AgeValidationException extends Exception {}
public void validateCustomAge(Integer age) {
if (age < 18) {
throw new AgeValidationException('Age must be 18 or older.');
}
System.debug('Age is valid.');
}
// Try-Catch ব্লক দিয়ে Custom Exception হ্যান্ডল করা
try {
validateCustomAge(15); // Throws AgeValidationException
} catch (AgeValidationException e) {
System.debug('Caught Custom Exception: ' + e.getMessage());
}
- Custom Exception:
AgeValidationExceptionনামে নতুন Exception তৈরি করা হয়েছে। - Throw Statement: যদি
age১৮ এর কম হয়, তবেAgeValidationExceptionException থ্রো করা হয়েছে। - Catch ব্লক:
AgeValidationExceptionException সনাক্ত করে এবং বার্তা প্রিন্ট করে।
Exception Handling এর কিছু গুরুত্বপূর্ণ বিষয়
- Specific Exception Catching: নির্দিষ্ট Exception যেমন
DmlException,NullPointerExceptionধরলে ত্রুটি হ্যান্ডলিং আরও কার্যকর হয়। - Finally ব্লক ব্যবহার করা: Exception ঘটলেও ক্লিনআপ কাজের জন্য
finallyব্লক ব্যবহার করা উচিত। - Custom Exception তৈরি করা: প্রয়োজন অনুযায়ী কাস্টম Exception তৈরি করলে কোড আরও পরিষ্কার ও সুসংগঠিত হয়।
- Error Logging: Exception লোগ করে ত্রুটির উৎস ও কারণ নির্ধারণ করা যায়।
সারসংক্ষেপ
- Try-Catch-Finally ব্লক: Try ব্লকে ত্রুটি সম্ভাব্য কোড রাখা হয়, Catch ব্লকে ত্রুটি হ্যান্ডল করা হয়, এবং Finally ব্লক সবসময় চালিত হয়।
- Throw Statement: নির্দিষ্ট শর্ত পূরণ না হলে Exception তৈরি করে থ্রো করা হয়।
- Custom Exception: Custom Exception তৈরি করে নির্দিষ্ট শর্তে Exception হ্যান্ডল করা যায়।
Exception Handling Apex এ কোডের স্থায়িত্ব ও কার্যকারিতা বৃদ্ধি করে এবং ত্রুটির সময় সঠিক পদক্ষেপ গ্রহণে সহায়ক।
Read more